package pe.adra.core.mvc;

import java.util.Date;
import java.util.List;
import java.util.Map;

import pe.adra.core.dao.ADRAEntidad;
import pe.adra.core.ext.soporte.SuportEntidad;
import pe.adra.util.exception.ServiceException;
import pe.adra.util.exception.ValidarException;

public interface ADRAMantBaseService<T extends ADRAEntidad> {

	public Map<String,Object> listarMap(T filtro, Date finit, Date ffin, int inicio, int fin,  int filas, int pagina,String strSort, String strOrder, SuportEntidad... innerjoin)throws ServiceException;

	public List<T> listar(T filtro, Date finit, Date ffin, int inicio, int fin, String strSort, String strOrder, SuportEntidad... innerjoin)throws ServiceException;

	public T guardar(T entidad)throws ServiceException;
	
	public int activo(T entidad)throws ServiceException;
	
	public T obtener(Long id)throws ServiceException;
	
	public void validar(T entidad) throws ValidarException;
	
}
